home *** CD-ROM | disk | FTP | other *** search
- 10 REM*********************************
- 20 REM* CZPL - CZ PATCH LIBRARIAN *
- 30 REM* BY ALAN BLAND (MAB1 ON QLINK) *
- 40 REM* REQUIRES PASSPORT INTERFACE *
- 50 REM* USES DR.T FORMAT CZ FILES *
- 60 REM* THIS PROGRAM IS PUBLIC DOMAIN *
- 70 REM*********************************
- 80 REM
- 90 REM CHANGED TO CZSL (FOR SEQUENTIAL
- 95 REM INTERFACE) 9/26/86 BY J. JOHNSON
- 100 IFX=0THENX=1:LOAD"CZSL.ML",8,1
- 110 POKE55,32:POKE56,78:CLR:REM 20000
- 120 DIMDT(8),FL$(8)
- 130 X=20001
- 140 FORI=1TO8:DT(I)=X:X=X+2370:NEXT
- 150 MB=1
- 190 POKE53280,0:POKE53281,0
- 200 REM HERE WE GO
- 210 PRINT"[147] CZSL - CZ PATCH LIBRARIAN [159]"
- 220 PRINT
- 230 PRINT" T - TRANSMIT PATCHES TO CZ"
- 240 PRINT" R - RECEIVE PATCHES FROM CZ"
- 250 PRINT" G - GET SINGLE PATCH FROM CZ"
- 260 PRINT" P - PUT SINGLE PATCH TO CZ"
- 270 PRINT
- 280 PRINT" D - DISK DIRECTORY"
- 290 PRINT" L - LOAD PATCH FILE FROM DISK"
- 300 PRINT" S - SAVE PATCH FILE TO DISK"
- 310 PRINT
- 320 PRINT" W - SWAP TWO PATCHES"
- 330 PRINT" E - EDIT PATCH NAMES"
- 340 PRINT" X - EXIT TO BASIC"
- 350 PRINT
- 360 PRINT"[158][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192]"
- 370 FORI=1TO8:PRINT" "CHR$(64+I),FL$(I):NEXT
- 380 PRINT"[158][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192]";
- 400 GETA$:IFA$=""THEN400
- 410 IFA$="T"THEN1000
- 420 IFA$="R"THEN2000
- 430 IFA$="G"THEN3000
- 440 IFA$="P"THEN4000
- 450 IFA$="D"THEN5000
- 460 IFA$="L"THEN5500
- 470 IFA$="S"THEN6000
- 475 IFA$="W"THEN8000
- 480 IFA$="E"THEN7000
- 490 IFA$="X"THENPRINT"[147]":END
- 500 GOTO400
- 550 REM SELECT MEMORY BANK
- 560 PRINT"COMPUTER BANK (A-H)? ";
- 570 GETB$:IFB$="X"THENRETURN
- 580 IFB$<"A"ORB$>"H"THEN570
- 590 PRINTB$:MB=ASC(B$)-64
- 595 RETURN
- 600 REM SELECT CZ BANK
- 610 PRINT"CZ INTERNAL OR CARTRIDGE (I OR C) ";
- 620 GETB$:IFB$<>"I"ANDB$<>"C"ANDB$<>"X"THEN620
- 630 PRINTB$
- 640 PB=32:IFB$="C"THENPB=64
- 650 RETURN
- 700 REM SELECT PATCH NUMBER
- 710 INPUT"CZ PATCH NUMBER (1-16)";P$
- 720 P=VAL(P$):RETURN
- 800 REM SELECT MEMORY NUMBER
- 810 INPUT"COMPUTER PATCH NUMBER (1-16)";P$
- 820 M=VAL(P$):RETURN
- 900 REM INPUT FILE NAME
- 910 PRINT"FILE NAME? "FL$(MB)
- 920 PRINT"[145]FILE NAME";:INPUTF$
- 930 RETURN
- 950 REM CHECK DISK ERROR
- 960 INPUT#15,E,E$,T,S
- 970 IFE=0THENRETURN
- 980 PRINTE;E$;T;S
- 985 CLOSE2:CLOSE15
- 990 PRINT"PRESS ANY KEY TO CONTINUE"
- 991 GETA$:IFA$=""THEN991
- 992 RETURN
- 1000 PRINT"[147]TRANSMIT PATCHES TO CZ[150]"
- 1005 GOSUB550:IFB$="X"THEN200
- 1010 GOSUB600:IFB$="X"THEN200
- 1020 FORP=1TO16
- 1030 PRINTP:PRINT"[145]";
- 1040 PN=PB+P-1
- 1050 A=DT(MB)+2+(P-1)*148
- 1060 AH=INT(A/256):AL=A-AH*256
- 1070 POKE780,PN:POKE781,AL:POKE782,AH:SYS49155
- 1080 NEXTP
- 1090 GOTO200
- 2000 PRINT"[147]RECEIVE PATCHES FROM CZ[153]"
- 2005 GOSUB600:IFB$="X"THEN200
- 2010 GOSUB550:IFB$="X"THEN200
- 2020 FORP=1TO16
- 2030 PRINTP:PRINT"[145]";
- 2040 PN=PB+P-1
- 2050 A=DT(MB)+2+(P-1)*148
- 2060 AH=INT(A/256):AL=A-AH*256
- 2070 POKE780,PN:POKE781,AL:POKE782,AH:SYS49152
- 2080 NEXTP
- 2090 GOTO200
- 3000 PRINT"[147]GET SINGLE PATCH FROM CZ[153]"
- 3010 GOSUB600:IFB$="X"THEN200
- 3011 GOSUB700:IFP=0THEN200
- 3015 GOSUB550:IFB$="X"THEN200
- 3020 GOSUB800:IFM=0THEN200
- 3030 PN=PB+P-1
- 3040 A=DT(MB)+2+(M-1)*148
- 3050 AH=INT(A/256):AL=A-AH*256
- 3060 POKE780,PN:POKE781,AL:POKE782,AH:SYS49152
- 3320 GOTO200
- 4000 PRINT"[147]PUT SINGLE PATCH TO CZ[150]"
- 4005 GOSUB550:IFB$="X"THEN200
- 4010 GOSUB800:IFM=0THEN200
- 4015 GOSUB600:IFB$="X"THEN200
- 4020 GOSUB700:IFP=0THEN200
- 4030 PN=PB+P-1
- 4040 A=DT(MB)+2+(M-1)*148
- 4050 AH=INT(A/256):AL=A-AH*256
- 4060 POKE780,PN:POKE781,AL:POKE782,AH:SYS49155
- 4320 GOTO200
- 5000 REM DISK DIRECTORY
- 5010 PRINT"[147][159]";
- 5015 OPEN15,8,15,"I0"
- 5020 OPEN2,8,0,"$0:CZ.*"
- 5030 GOSUB950:IFE<>0THEN200
- 5040 GET#2,A$,A$
- 5050 GET#2,A$,B$,C$,D$
- 5060 C=0:IFC$<>""THENC=ASC(C$)
- 5070 IFD$<>""THENC=C+ASC(D$)*256
- 5080 GET#2,A$:IFST<>0THEN5200
- 5090 PRINTC;A$;
- 5100 GET#2,A$:IFA$<>""THENPRINTA$;:GOTO5100
- 5110 PRINT:GOTO5050
- 5200 CLOSE2:CLOSE15
- 5210 PRINT"PRESS ANY KEY";
- 5220 GETA$:IFA$=""THEN5220
- 5230 GOTO200
- 5500 PRINT"[147]LOAD FILE[159]"
- 5505 GOSUB550:IFB$="X"THEN200
- 5510 GOSUB900:IFF$="X"THEN200
- 5520 FL$(MB)=F$:F$="CZ."+F$+",S,R"
- 5530 OPEN15,8,15,"I0"
- 5540 OPEN2,8,2,F$
- 5550 GOSUB950:IFE<>0THEN200
- 5600 H=INT(DT(MB)/256):L=DT(MB)-H*256
- 5610 POKE781,L:POKE782,H:SYS49158
- 5611 GET#2,A$:REM SECRET TRICK
- 5620 CLOSE2:CLOSE15
- 5710 GOTO200
- 6000 PRINT"[147]SAVE FILE[152]"
- 6005 GOSUB550:IFB$="X"THEN200
- 6010 GOSUB900:IFF$="X"THEN200
- 6020 FL$(MB)=F$:F$="CZ."+F$+",S,W"
- 6030 OPEN15,8,15,"I0"
- 6040 OPEN2,8,2,F$
- 6050 GOSUB950:IFE<>0THEN200
- 6060 POKEDT,64:POKEDT+1,9:REM LENGTH
- 6100 H=INT(DT(MB)/256):L=DT(MB)-H*256
- 6110 POKE781,L:POKE782,H:SYS49161
- 6115 PRINT#2,"";:REM SECRET TRICK
- 6120 CLOSE2:CLOSE15
- 6210 GOTO200
- 7000 PRINT"[147]EDIT PATCH NAMES"
- 7005 GOSUB550:IFB$="X"THEN200
- 7010 PRINT"[147]BANK "CHR$(64+MB),FL$(MB)""
- 7015 PRINT
- 7020 FORP=1TO16
- 7030 A=DT(MB)+2+(P-1)*148+128
- 7040 PRINT" "P,
- 7050 FORJ=0TO19:PRINTCHR$(PEEK(A+J));:NEXT:PRINT
- 7060 NEXT
- 7070 PRINT
- 7080 INPUT"PATCH NUMBER OR X";P$
- 7085 IFP$="X"THEN200
- 7090 P=VAL(P$):IFP<1ORP>16THEN7000
- 7100 INPUT"NEW PATCH NAME";N$
- 7110 N$=N$+" "
- 7120 A=DT(MB)+2+(P-1)*148+128
- 7130 FORI=1TO20:POKEA+I-1,ASC(MID$(N$,I,1)):NEXT
- 7140 GOTO7010
- 8000 PRINT"[147]SWAP TWO PATCHES[158]"
- 8010 PRINT:PRINT"FIRST PATCH"
- 8015 GOSUB550:IFB$="X"THEN200
- 8016 B1=MB
- 8020 GOSUB800:IFM=0THEN200
- 8030 M1=M
- 8040 PRINT:PRINT"SECOND PATCH"
- 8045 GOSUB550:IFB$="X"THEN200
- 8046 B2=MB
- 8050 GOSUB800:IFM=0THEN200
- 8060 M2=M
- 8070 A1=DT(B1)+2+(M1-1)*148
- 8080 A2=DT(B2)+2+(M2-1)*148
- 8090 FORI=1TO148
- 8100 X=PEEK(A1):POKEA1,PEEK(A2):POKEA2,X
- 8110 A1=A1+1:A2=A2+1:NEXT
- 8120 GOTO200
-